import sys
from PyQt6.QtCore import QObject, pyqtSignal, QTimer
from PyQt6.QtWidgets import QApplication


class MyObject(QObject):
    # 自定义信号，用于通知其他对象
    showFixedContent = pyqtSignal()

    def startLoop(self):
        # 模拟循环
        for i in range(1, 101):
            print(i)  # 在实际应用中替换成执行某一步的代码

            # 判断是否到达触发条件
            if i == 50:
                # 发射自定义信号，通知其他对象显示固定的内容
                self.showFixedContent.emit()
                print("发送")

                # 在实际应用中可能需要添加一些延时等待的逻辑
                # 例如：QCoreApplication.processEvents() 或使用 QTimer

class MyReceiver(QObject):
    def __init__(self):
        super().__init__()

        # 创建 MyObject 对象
        self.myObject = MyObject()

        # 连接信号和槽
        self.myObject.showFixedContent.connect(self.showFixedContent)

        # 启动循环
        self.myObject.startLoop()

    def showFixedContent(self):
        # 处理显示固定内容的逻辑
        print('固定内容已显示')

if __name__ == '__main__':
    app = QApplication(sys.argv)

    # 创建 MyReceiver 对象
    #receiver = MyReceiver()
    a = MyObject()
    a.startLoop()

    sys.exit(app.exec())
